package mbeans;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.RequestScoped;

import model.Anuncio;
import armazenamento.AnuncioCadastro;
import armazenamento.CodigoAnuncio;

@ManagedBean(name = "usuario")
@RequestScoped
public class ManageUsuario {
	private String idAnuncio;
	@ManagedProperty(value = "#{principal}")
	private PrincipalController principal;
	private static CodigoAnuncio codigoAnuncio;
	private Anuncio novo;
	private AnuncioCadastro anuncioCadastro;
	public ManageUsuario() {
		codigoAnuncio = CodigoAnuncio.getInstance();
		anuncioCadastro = AnuncioCadastro.getIntance();
		novo = new Anuncio();
	}

	public String getIdAnuncio() {
		return idAnuncio;
	}

	public void setIdAnuncio(String idAnuncio) {
		this.idAnuncio = idAnuncio;
	}

	public PrincipalController getPrincipal() {
		return principal;
	}

	public void setPrincipal(PrincipalController principal) {
		this.principal = principal;
	}

	public static CodigoAnuncio getCodigoAnuncio() {
		return codigoAnuncio;
	}

	public static void setCodigoAnuncio(CodigoAnuncio codigoAnuncio) {
		ManageUsuario.codigoAnuncio = codigoAnuncio;
	}

	public Anuncio getNovo() {
		return novo;
	}

	public void setNovo(Anuncio novo) {
		this.novo = novo;
	}

	public String adicionarAnuncio() {
		Anuncio anuncio = new Anuncio();
		if (novo.getCodigo() == null) {
			anuncio.setCodigo(codigoAnuncio.getCodigo());
			System.out.println("inserindo.....");
		} else {
			this.excluirAnuncio();
			System.out.println("alterando.....");
		}
		
		anuncio.setCodigo(novo.getCodigo());
		anuncio.setResumo(novo.getResumo());
		anuncio.setDetalhes(novo.getDetalhes());
		anuncio.setComentarios(novo.getComentarios());
		anuncio.setUsuario(this.principal.getUsuario());
		anuncio.setEdicao(false);
		this.principal.getUsuario().getAnuncios().add(anuncio);
		this.anuncioCadastro.inserirAnuncio(anuncio);
		novo = new Anuncio();
		return "cadastrado";
	}

	public String excluirAnuncio() {
		int index = this.principal.getUsuario().getAnuncios().indexOf(novo);
		if (index > -1)
			this.principal.getUsuario().getAnuncios().remove(index);
		return "excluido";
	}

	public String editarAnuncio() {
		Anuncio anuncio = new Anuncio();
		anuncio.setCodigo(Integer.parseInt(idAnuncio));
		int index = this.principal.getUsuario().getAnuncios().indexOf(anuncio);
		if (index > -1)
			novo = this.principal.getUsuario().getAnuncios().get(index);
			novo.setEdicao(true);
		return "editar";
	}

}
